package com.javarush.test.level19.lesson08.task04;

/* Решаем пример
В методе main подмените объект System.out написанной вами ридер-оберткой по аналогии с лекцией
Ваша ридер-обертка должна выводить на консоль решенный пример
Вызовите готовый метод printSomething(), воспользуйтесь testString
Верните переменной System.out первоначальный поток

Возможные операции: + - *
Шаблон входных данных и вывода: a [знак] b = c
Отрицательных и дробных чисел, унарных операторов - нет.

Пример вывода:
3 + 6 = 9
*/

import java.io.ByteArrayOutputStream;
import java.io.PrintStream;

public class Solution {
    public static TestString testString = new TestString();

    public static void main(String[] args) {PrintStream consoleStream=System.out;
        ByteArrayOutputStream outputStream=new ByteArrayOutputStream();
        PrintStream stream=new PrintStream(outputStream);
        System.setOut(stream);
        testString.printSomething();
        int a=0;
        String result=outputStream.toString();
        String[] ops=result.split(" ");
        int op1=Integer.parseInt(ops[0]);
        int op2=Integer.parseInt(ops[2]);
        String operator=ops[1];
        switch (operator){
            case ("+"): {
                a=op1+op2;
                break;
            }
            case ("-"): {
                a=op1-op2;
                break;
            }
            case ("*"): {
                a=op1*op2;
                break;
            }
        }
        result=ops[0]+" "+ops[1]+" "+ops[2]+" "+"="+" "+a;

        System.setOut(consoleStream);
        System.out.print(result);
    }

    public static class TestString {
        public void printSomething() {
            System.out.println("3 + 6 = ");
        }
    }
}

